package perfeccion;

import java.util.*;

public class Juego {

    //Atributos

    public ArrayList<Tablero> listaTableros;
    public ArrayList<Jugador> listaJugadores;
    public ArrayList<Ficha> listaFichas;
    public Partida partidaActual;

    //Gets & Sets
    public ArrayList<Tablero> getListaTabelros() {
        return listaTableros;
    }

    public void setListaTableros(ArrayList<Tablero> listaTabelros) {
        this.listaTableros = listaTabelros;
    }

    public ArrayList<Jugador> getListaJugadores() {
        return listaJugadores;
    }

    public void setListaJugadores(ArrayList<Jugador> listaJugadores) {
        this.listaJugadores = listaJugadores;
    }

    public ArrayList<Ficha> getListaFichas() {
        return listaFichas;
    }

    public void setListaFichas(ArrayList<Ficha> listaFichas) {
        this.listaFichas = listaFichas;
    }

    public Partida getPartidaActual() {
        return partidaActual;
    }

    public void setPartidaActual(Partida partidaActual) {
        this.partidaActual = partidaActual;
    }
     
    public void setJugadorPartida(Jugador unJugador) {
        partidaActual.setJugadorPartida(unJugador);
    }
    //Constructor
    public Juego() {
        this.listaTableros = new ArrayList<Tablero>();
        this.listaJugadores = new ArrayList<Jugador>();
        this.listaFichas = cargarFicha();
        this.partidaActual = new Partida();
    }

    //Metodos
    public void setFichaPartida(Ficha unaFicha) {
        partidaActual.setFichas(unaFicha);

    }

    public ArrayList<Ficha> cargarFicha() {
        ArrayList<Ficha> listaFicha = new ArrayList<Ficha>();
        
        Ficha fichaNegra = new Ficha("N");
        Ficha fichaBlanca = new Ficha("B");
        Ficha fichaVacia = new Ficha(" ");
        
        listaFicha.add(fichaNegra);
        listaFicha.add(fichaBlanca);
        listaFicha.add(fichaVacia);

        return listaFicha;
    }

    //para registrar un jugador
    public void registroJugador(Jugador unJugador) {
        this.getListaJugadores().add(unJugador);
    }

    //para agregar jugador
    public void agregarJugador(String unNombre, String unAlias, int unaEdad, int unaPartidaJugadas, int unaPartidaGanadas) {
        Jugador jugador = new Jugador(unNombre, unAlias, unaEdad, unaPartidaJugadas, unaPartidaGanadas);
        registroJugador(jugador);

    }
    
    //crear juego
    public Partida creoJuego(Partida unaPartida, Jugador unJugador1, Ficha unaFicha1, Jugador unJugador2, Ficha unaFicha2, int tamTablero, int tamPanel, int cantFichas) {
        Ficha tableroJuego[][];
        Ficha tableroAux[][];
        Ficha panel[][];
        
        tableroJuego = new Ficha[tamTablero][tamTablero];
        tableroAux = new Ficha[tamTablero][tamTablero];
        panel = new Ficha[tamPanel][tamPanel];
        
        Tablero tablero = new Tablero(tableroJuego);
        Tablero tableroAuxiliar = new Tablero(tableroAux);
        Tablero tableroPanel = new Tablero(panel);

        unaPartida.setTablero(tablero);
        unaPartida.setPanel(tableroPanel);
        unaPartida.setTableroAux(tableroAuxiliar);
        unaPartida.listaJugadoresJuego.add(unJugador1);
        unaPartida.listaFicha.add(unaFicha1);
        unaPartida.listaJugadoresJuego.add(unJugador2);
        unaPartida.listaFicha.add(unaFicha2);
        unaPartida.setCantFichas(cantFichas);
        
        return unaPartida;
    }

}
